home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / tools / sharp / sxwork3.lzh / サンプル実用編 / 小遣い帳 / CASH.H < prev    next >
Text File  |  1994-03-10  |  6KB  |  208 lines

  1. /******************************************************************************
  2.  *    cash.h:        小遣い帳用ヘッダファイル
  3.  ******************************************************************************
  4.  *    Workroom SX-68K Sample Program Copyright 1994 SHARP
  5.  *
  6.  *    定数定義
  7.  */
  8. /* ウィンドウタイトル */
  9. #define WINTITLE    ((_LASCII) "\x08小遣い帳")
  10.  
  11. /* ウィンドウサイズ */
  12. #define WIN_H        350        /* ウィンドウの幅        */
  13. #define WIN_V        240        /* ウィンドウの高さ        */
  14.  
  15. /* 数値調整ボタンのリピート時間(1/100秒単位)*/
  16. #define ADJFIRST    40        /* リピート開始時間        */
  17. #define ADJNEXT        16        /* リピート間隔            */
  18.  
  19. #define CELLMG        3        /* セルとレクタングルの間のマージン */
  20. #define OUTFRM        8        /* 外枠と内枠のマージン        */
  21. #define CELLPTX        20        /* 表の表示開始位置        */
  22. #define CELLPTY        30
  23. #define ESE_X        18        /* 疑似ダイアログの表示開始位置    */
  24. #define ESE_Y        18
  25. #define BTNY        (CELLPTY - 22)    /* 数値調整ボタンの位置        */
  26. #define BTNX        (CELLPTX + 171)
  27.  
  28. /* イベントマスク */
  29. #define EVENTMASK    (EM_IDLE | EM_MSLDOWN | EM_MSRDOWN | EM_UPDATE | EM_ACTIVATE | EM_SYSTEM1 | EM_SYSTEM2)
  30. /*
  31.  *    構造体宣言
  32.  */
  33. typedef struct EseDlg {
  34.     Window *windowPtr;
  35.     TEdit **tEdit;
  36.     BOOLEAN visible;
  37.     char **title;
  38.     int tmode;            /* 編集テキストのモード        */
  39.     Point ttlPos;
  40.     Point ttlPos2[2];
  41.     Rect rcFrame;            /* 外枠のレクタングル        */
  42.     Rect rcText[2];
  43.     Rect rcPart;            /* 文字ボタンのパーティション    */
  44.     /* テキストのディスティネーションレクタングル */
  45.     Rect rcDest;
  46.     Control **execBtnHdl;        /* 実行                */
  47.     Control **canBtnHdl;        /* 取消                */
  48.     int value[2];
  49.     char tBuff[2][10];        /* 編集テキストの待避バッファ    */
  50. } EseDlg;
  51.  
  52. typedef struct CAtt {            /* セル一列の属性を示す        */
  53.     short array;            /* 使用する配列番号        */
  54.     /* データ属性 0 = 数値、1 = 文字列、2 = タイトル */
  55.     short attrib;
  56.     short size;            /* セル1要素のバイト数        */
  57.     int length;            /* セルの文字数            */
  58. } CAtt;
  59.  
  60. typedef struct CPoint {
  61.     int x;
  62.     int y;
  63. } CPoint;
  64.  
  65. typedef struct Mtx {
  66.     Point pos;            /* 表示開始座標            */
  67.     Point offset;            /* データセルへのオフセット    */
  68.     Rect rcAll;            /* 全体を示すレクタングル    */
  69.  
  70.     CPoint eCell;            /* 編集セルの位置        */
  71.     CPoint mCell;            /* 確定されたセル位置        */
  72.     int focus;            /* 編集領域フラグ        */
  73.     BOOLEAN edit;            /* 編集フラグ            */
  74.     TEdit **tEdit;            /* テキストエディットハンドル    */
  75.  
  76.     short fontSize;            /* フォントサイズ (6, 8, 12)    */
  77.     short cWide;            /* セルの横の個数        */
  78.     short cHeight;            /* セルの縦の個数        */
  79.     CAtt *cAttH;            /* セルの属性の配列へのポインタ(横)*/
  80.     /* タイトルの配列へのポインタ(横)(縦)*/
  81.     char ***cTitle;
  82.     char **cData;            /* データの配列を格納するポインタ */
  83. } Mtx;
  84.  
  85. typedef struct ComVal {            /* 共通変数            */
  86.     Window *windowPtr;        /* ウィンドウポインタ        */
  87.     BOOLEAN activeFlag;        /* アクティブフラグ        */
  88.     TsEvent event;            /* イベントレコード        */
  89.     int eventMask;            /* イベントマスク        */
  90.     int errorCode;            /* エラーコード            */
  91.     BOOLEAN endFlag;        /* 終了フラグ            */
  92.  
  93.     int month;            /* 編集対象の日付        */
  94.     int day;
  95.     int thisMonth;            /* 今日の日付            */
  96.     int today;
  97.     Control **adjBtnHdl;        /* 数値調整ボタン        */
  98.  
  99.     /* 疑似ダイアログ用ワーク */
  100.     BOOLEAN eseFlag;
  101.     EseDlg eseDlg;
  102.  
  103.     /* 小遣い入力表用ワーク */
  104.     BOOLEAN editFlag;        /* 表の編集フラグ        */
  105.     int keMode;            /* 表の表示モード        */
  106.     Mtx cashTbl;            /* 表作成用構造体        */
  107.     char **keTitle[2];        /* 表のタイトルを示すテーブル    */
  108.     char *keData[2];        /* 表のデータを示すテーブル    */
  109.  
  110.     /* 過去3ヶ月合計表示用ワーク */
  111.     char **k3Title[2];        /* 表のタイトルを示すテーブル    */
  112.     char *k3Data[4];        /* 表のデータを示すテーブル    */
  113.     char *ke3Til[5];        /* 横の項目タイトル        */
  114.     char ke3STil[3][12];        /* タイトル作成用ワーク        */
  115.  
  116.     /* データ格納用配列 */
  117.     int money[8];            /* 金額データ            */
  118.     int money1[8];
  119.     int money2[8];
  120.     int money3[8];
  121.     char info[8][21];        /* 摘要データ            */
  122.  
  123.     char dataFile[100];        /* データファイル名        */
  124. } ComVal;
  125. /*
  126.  *    外部変数宣言
  127.  */
  128. extern short funcKeyTbl[];        /* ファンクションキーアサインテーブル */
  129. /*
  130.  *    関数プロトタイプ
  131.  */
  132. /* csmain.c */
  133. BOOLEAN init(ComVal *);
  134. BOOLEAN createWindow(ComVal *);
  135. BOOLEAN createControl(ComVal *);
  136. void idleEvent(ComVal *);
  137. void msLDownEvent(ComVal *);
  138. void checkControl(ComVal *);
  139. void msRDownEvent(ComVal *);
  140. void selectMenu(ComVal *);
  141. void keyDownEvent(ComVal *);
  142. void updateEvent(ComVal *);
  143. void drawGraph(ComVal *);
  144. void activateEvent(ComVal *);
  145. void systemEvent(ComVal *);
  146. void showErrDialog(ComVal *);
  147. void endProc(int, ComVal *);
  148. void repeatAdjBtn(ComVal *, int, int *, int *);
  149. void addUpdate(Window *, Rect *);
  150.  
  151. /* cash.c */
  152. BOOLEAN initCashTbl(ComVal *);
  153. BOOLEAN initCash3M(ComVal *);
  154. void getTomorrow(int, int, int *, int *);
  155. void getYesterday(int, int, int *, int *);
  156. BOOLEAN checkDate(int, int);
  157. int getMaxDay(int);
  158. void clearData(int *, char *);
  159. BOOLEAN sumMonth(ComVal *, int, int *, char *);
  160. BOOLEAN get3Month(ComVal *, int);
  161. void execDlg(ComVal *, int);
  162. void reloadData(ComVal *, int, int);
  163. void postEvent(ComVal *);
  164.  
  165. /* csfile.c */
  166. BOOLEAN loadFile(ComVal *, int, int, int *, char *);
  167. BOOLEAN newFile(ComVal *);
  168. BOOLEAN readTable(ComVal *, short *);
  169. BOOLEAN saveFile(ComVal *, int, int, int *, char *);
  170. void errSaveFile(FILE *, int);
  171. int checkDrive(char *, int);
  172.  
  173. /* csese.c */
  174. BOOLEAN openEseDlg(EseDlg *, Window *, char *);
  175. void closeEseDlg(EseDlg *);
  176. void drawEseDlg(EseDlg *);
  177. void showEseDlg(EseDlg *);
  178. void hideEseDlg(EseDlg *);
  179. BOOLEAN createEseText(EseDlg *);
  180. BOOLEAN createEseControl(EseDlg *);
  181. void caretEseDlg(EseDlg *, BOOLEAN);
  182. int eseDlgEvent(EseDlg *, TsEvent *);
  183. int getEseVal(EseDlg *, int *, int);
  184. int setEseVal(EseDlg *, int, int);
  185. void moveEdit(EseDlg *, int );
  186. void setClip(Window *, Rect *);
  187. void releaseClip(Window *);
  188.  
  189. /* cscell.c */
  190. BOOLEAN openCell(Mtx *, Window *, LPoint, int, int, int);
  191. void closeCell(Mtx *, Window *);
  192. void setCellData(Mtx *, CAtt *, char **, char ***);
  193. void drawCell(Mtx *);
  194. void drawCellOne(Mtx *, CPoint *);
  195. void drawCellStr(Mtx *, Rect *, CPoint *);
  196. void drawCellFrame(Rect *, short, short);
  197. LPoint cptToLpt(Mtx *, CPoint *);
  198. void focusOn(Mtx *, CPoint *);
  199. void focusOff(Mtx *);
  200. void drawFocus(Mtx *);
  201. void mountFocus(Mtx *);
  202. int cellEvent(Mtx *, TsEvent *);
  203. void nextCell(Mtx *, CPoint *, CPoint *);
  204. BOOLEAN checkCpt(Mtx *, LPoint, CPoint *);
  205. BOOLEAN totalCell(Mtx *, int);
  206. void caretCell(Mtx *, int);
  207. void clearCell(Mtx *, Window *);
  208.